﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

namespace AnOtherBlog.Core.HttpModules
{
	/// <summary>
	/// Esta clase es para probar el esquema de módulos en la arquitectura ASP.NET
	/// Por ahora reescribe el URL para poder acceder al handler que implementa el MetaWeblogAPI
	/// </summary>
	public class UrlRewrite : IHttpModule
	{

		#region IHttpModule Members

		/// <summary>
		/// Método para devolver recursos al sistema
		/// </summary>
		public void Dispose()
		{
		}

		/// <summary>
		/// Inicialización del modulo
		/// </summary>
		/// <param name="context">Ver <see cref="System.Web.HttpApplication"/> contexto actual de ejecución</param>
		public void Init(HttpApplication context)
		{
			context.BeginRequest += new EventHandler(UrlRewrite_BeginRequest);
		}

		#endregion

		/// <summary>
		/// Procesa el evento BeginRequest en el contexto actual
		/// </summary>
		/// <param name="sender">Origen del evento.</param>
		/// <param name="e">Ver <see cref="System.EventArgs"/> datos del evento.</param>
		private void UrlRewrite_BeginRequest(object sender, EventArgs e)
		{
			HttpContext context = ((HttpApplication) sender).Context;
			string path = context.Request.Path.ToUpperInvariant();
			string url = context.Request.RawUrl.ToUpperInvariant();

			if (url.Contains("/METAWEBLOG.ASPX"))
			{
				context.RewritePath(Util.WebRootRelative + "MetaWeblogAPI.ashx");
			}

		}

	}

}
